package org.apache.click.doubleclick.annotationconfig.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Annotation to use to define the header value. If more then one class is found
 * with this annotation, then then their values will be merged.
 *
 * @author Jahid Shohel (jshohel@gmail.com)
 * @see org.apache.click.doubleclick.annotationconfig.annotations.Headers
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Header {
    /**
     * Header name. Runtime exception will be thrown if the name is empty or null.
     *
     * @return name of the header.
     */
    public String name();

    /**
     * Header value. Runtime exception will be thrown if the value is empty or null.
     *
     * @return value of the header.
     */
    public String value();

    /**
     * Header value type. If nothing is provided then by default it is considered
     * as empty string.
     *
     * @return type of the header.
     */
    public String type() default "";
}
